package com.guldan.jaina.provider;

import java.util.List;

import com.guldan.core.dubbo.client.ResponseDTO;
import com.guldan.core.search.Pagination;
import com.guldan.jaina.dto.project.ProjectDTO;
import com.guldan.jaina.dto.project.ProjectSearchDTO;
import com.guldan.jaina.dto.projectattach.ProjectAttachDTO;
import com.guldan.jaina.dto.projectattach.ProjectAttachSearchDTO;
import com.guldan.jaina.dto.projectcategory.ProjectCategoryDTO;
import com.guldan.jaina.dto.projectcategory.ProjectCategorySearchDTO;
import com.guldan.jaina.dto.projectextensiondic.ProjectExtensionDicDTO;
import com.guldan.jaina.dto.projectextensiondic.ProjectExtensionDicSearchDTO;
import com.guldan.jaina.dto.projecttag.ProjectTagDTO;
import com.guldan.jaina.dto.projecttag.ProjectTagSearchDTO;

/**
 * Created by Silas.
 * Date: 2016/11/7
 * Time: 22:49
 */
public interface IProjectProvider {

    //ProjectCategory
    //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    ResponseDTO<ProjectCategoryDTO> getProjectCategory(Integer var1);

    ResponseDTO<ProjectCategoryDTO> saveProjectCategory(ProjectCategoryDTO var1);

    ResponseDTO<Boolean> deleteProjectCategory(Integer var1);

    ResponseDTO<List<ProjectCategoryDTO>> allProjectCategory(ProjectCategorySearchDTO var1);
    //-----------------------------------------------------------------------

    //ProjectTag
    //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    ResponseDTO<ProjectTagDTO> getProjectTag(Integer var1);

    ResponseDTO<ProjectTagDTO> saveProjectTag(ProjectTagDTO var1);

    ResponseDTO<Boolean> deleteProjectTag(Integer var1);

    ResponseDTO<List<ProjectTagDTO>> allProjectTag(ProjectTagSearchDTO var1);
    //-----------------------------------------------------------------------

    //ProjectExtensionDic
    //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    ResponseDTO<ProjectExtensionDicDTO> getProjectExtensionDic(Integer projectExtensionDicId);

    ResponseDTO<ProjectExtensionDicDTO> saveProjectExtensionDic(ProjectExtensionDicDTO var1);

    ResponseDTO<Boolean> deleteProjectExtensionDic(Integer projectExtensionDicId);

    ResponseDTO<List<ProjectExtensionDicDTO>> allProjectExtensionDic(ProjectExtensionDicSearchDTO var1);

    ResponseDTO<List<ProjectExtensionDicDTO>> listByProjectId(Integer projectId);
    //-----------------------------------------------------------------------

    //-----------------------------------------------------------------------
    //获取单个项目，传入：Projectid
    ResponseDTO<ProjectDTO> get(Integer var1);

    //新增/更新单个项目，传入：ProjectDTO
    ResponseDTO<ProjectDTO> save(ProjectDTO var1);

    //删除单个项目，传入：Projectid
    ResponseDTO<Boolean> delete(Integer var1);

    //分页获取项目信息列表，传入：检索DTO
    ResponseDTO<Pagination<ProjectDTO>> list(ProjectSearchDTO var1);

    ResponseDTO<ProjectAttachDTO> getProjectAttach(ProjectAttachSearchDTO var1);

    ResponseDTO<List<ProjectDTO>> listForOrg(ProjectSearchDTO var1);

}
